/**
 * @file 工单操作-多工程师
 * @author yangjiangming <449654337@qq.com>
 * @date 2018-12-10 20:13:16
 */
layui.define(['layer', 'form', 'laytpl', '$http'], function (exports) {
    var $ = layui.$;
    var form = layui.form;
    var laytpl = layui.laytpl;
    var opCommonUtils = layui.list_modify_common;

    var $http = layui.$http;

    /**
     * 增加工程师
     * @param data {obj} 工程师相关的一些参数
     */
    function addmaster(data) {
        var addMaster = $("#d-addmaster").html();
        var dmaster = $(".d-master");
        laytpl(addMaster).render(data, function (html) {
            dmaster.prepend(html)
        })
    }

    /**
     * 提示框
     * @param str {string} 提示内容;
     * @returns {*}
     */
    function toast(opt) {
        layer.msg(opt.title, {
            icon: opt.icon,
            time: opt.time || 1000,
        }, function () {
            if (opt.icon === 1) {
                opCommonUtils.goOperateHome();
            }
        })
    };

    /**
     * 初始化页面
     */
    function initPage() {

    }

    /**
     * 初始化页面事件
     */
    function initEvent() {
        //多工程师添加
        form.on("submit(add)", function (res) {
            var $select = $(this).siblings('div').find('select');
            var $opt = $select.find('option:selected');
            var masterid = $opt.val();
            var name = $opt.text();
            var id = $opt.val();
            if (!masterid) {
                toast({
                    title: '请选择工程师',
                    icon: 2
                });
                return false;
            }
            addmaster({id: id, name: name});
            $(this).siblings('div').find('input').val('');

            // 设置禁用
            $opt.attr('disabled', 'disabled');
            $select.val('');
            form.render('select');
            return false
        })
        //删除某个工程师
        form.on('submit(delete)', function (res) {
            var $item = $(this).parent('.layui-form-item');
            var id = $item.find('[type=hidden]').val();

            // 回复选择
            var $select = $('select.add-input');
            $select.find('option[value=' + id + ']').removeAttr('disabled');
            $select.val('');
            form.render('select');
            $item.remove();
            return false
        })
        //保存
        form.on('submit(save)', function (data) {
            var addInput = $('.d-master input[type=hidden]');
            var masterList = [];

            let selectMaster = $('.add-input').val();
            if (selectMaster) {
                masterList.push(selectMaster);
            }
            addInput.each(function (index, item) {
                if (item.value) {
                    masterList.push(item.value);
                }
            });

            //未选择工程师 不可保存
            if ($('.add-master').length < 1 && multiMasterList < 1 && !selectMaster) {
                toast({
                    title: '请选择工程师',
                    icon: 2,
                    time: 2000
                });
                return false;
            }

            var dto = {
                workId: data.field.workId,
                orderId: data.field.orderId,
                masterList: masterList,
                casSign: $('#casSign').val()
            };
            $http.lockSave(data.form.action, dto, data.elem).then(function () {
                layer.msg('操作成功', { icon: 1, time: 1000 }, function () {
                    opCommonUtils.goOperateHome();
                });
            }, (msg) => {
                layer.msg(msg);
            });
            return false
        });

        //重置
        form.on('submit(reset)', function () {
            $(".addmaster").parent('.layui-form-item').siblings().remove();
            return false
        })

    }

    // 程序入口
    function init() {

        // 初始化页面
        initPage();

        // 初始化事件
        initEvent();

    }


    // 初始化
    init();

    exports('oms_work_modify_multimaster');
});
